package com.likou.second_challenge;

import java.util.LinkedList;
import java.util.Queue;

public class q104 {

    // dfs
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int leftMax = maxDepth(root.left);
        int rightMax = maxDepth(root.right);

        return Math.max(leftMax, rightMax) + 1;
    }

//    BFS
//    public int maxDepth(TreeNode root) {
//        int ans = 0;
//
//        Queue<TreeNode> queue = new LinkedList<>();
//        queue.offer(root);
//        while (!queue.isEmpty()) {
//            int size = queue.size();
//            while (size > 0) {
//                TreeNode poll = queue.poll();
//                if (poll.left != null) {
//                    queue.offer(poll.left);
//                }
//                if (poll.right != null) {
//                    queue.offer(poll.right);
//                }
//                size--;
//                ans++;
//            }
//        }
//
//        return ans;
//    }

}
